from rest_framework import serializers
from django_redis import get_redis_connection


class CodeSerializer(serializers.Serializer):
    """
    短信序列化器
    """
    # 判断是否在60s内
    # get_serializer 方法在创建序列化器对象的时候，会补充context属性
    # context 属性中包含三个值 request   format  view 类视图对象
    #  self.context['view']

    # django的类视图对象中，kwargs属性保存了路径提取出来的参数
    def validate(self, attrs):
        mobile = self.context['view'].kwargs['mobile']

        redis_conn = get_redis_connection('verify_codes')
        send_flag = redis_conn.get("send_flag_%s" % mobile)
        if send_flag:
            raise serializers.ValidationError('请求次数过于频繁')
        return attrs
















